/*
mixins 混入
即 将本JS里面的data或方法自动加入每个页面中，在里面可以通过this.xxx进行调用。
如果页面中有同名的数据字段或方法，则覆盖此页中预定的。

一些全局通用方法和字段值，建议写到这里面
*/
export default {
    created() {
    },
    mounted() {
    },
    data() {
        return {
            // 全局预定义饿了么分页的size可选项
            defaultPageSize: [1, 2, 5, 10, 15, 20, 50, 100, 200],

            //全局预定义饿了么日期范围选择组件的配置项
            defaultPickerOptions: {
                shortcuts: [{
                    text: '最近一周',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
                        picker.$emit('pick', [start, end])
                    }
                }, {
                    text: '最近一个月',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
                        picker.$emit('pick', [start, end])
                    }
                }, {
                    text: '最近三个月',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
                        picker.$emit('pick', [start, end])
                    }
                }]
            },
            // 全局预定义 UEditor的配置项
            defaultUEditorConfig: {
                // 编辑器不自动被内容撑高
                autoHeightEnabled: false,
                // 初始容器高度
                initialFrameHeight: 400,
                // 初始容器宽度
                initialFrameWidth: '100%',
                // 上传文件接口（这个地址是我为了方便各位体验文件上传功能搭建的临时接口，请勿在生产环境使用！！！）
                serverUrl: '/controller.ashx',
                // UEditor 资源文件的存放路径，如果你使用的是 vue-cli 生成的项目，通常不需要设置该选项，vue-ueditor-wrap 会自动处理常见的情况，如果需要特殊配置，参考下方的常见问题2
                UEDITOR_HOME_URL: '/UEditor/'
            },

            //饿了么上传接口
            eleUploadUrl: '',
        }
    },
    methods: { // 公共方法
        //设置页头信息，页头信息建议写一些指示性介绍或简要的使用说明。
        setPageHead(data) {
            if (this.$store) {
                this.$store.commit('setSysPagerHeader', data)
            }
        },

        //判断是否具备权限，通畅用于页面上根据权限决定某个按钮是否显示：<v-button v-if="hasPermission('article.delete')">删除</el-button>
        hasPermission(permission) {
            //permission 当前操作需要的权限
            let myPermissions = this.$store.state.admin.permissions; //我具有的权限
            return !!(myPermissions && myPermissions.length > 0 && myPermissions.indexOf(permission) >= 0);

        },

        //手动调用关闭当前Tab页，跳转到指定页面
        closeCurrTabAndGoToUrl(url) {
            //触发上层组件（layout.vue里面）的closeCurrTab事件，交给父页面去处理
            this.$emit("closeCurrTab", url);
        },

        //生成一个指定长度的随机字符串(如默认密码)
        randomString(len) {
            len = len || 32;
            var $chars = 'abc0de1fg2hi3jkl4mno5pqr6stu7vw8xy9z';
            /****可以考虑去掉容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
            var maxPos = $chars.length;
            var rnd = '';
            for (let i = 0; i < len; i++) {
                rnd += $chars.charAt(Math.floor(Math.random() * maxPos));
            }
            return rnd;
        },
    }
}
